package main

import (
	"common/version"
	"encoding/json"
	"fmt"
	"time"
)

type PkgItem struct {
	Env  string `json:"env"`  //环境
	Arch string `json:"arch"` //arch
	Os   string `json:"os"`   //os

	Version      version.Version `json:"version"`       //版本号
	CommitId     string          `json:"commit_id"`     //git commitId
	Gray         int             `json:"gray"`          //取值范围0-99,0表示全量
	IncludeNodes []string        `json:"include_nodes"` //指定节点
	ExcludeNodes []string        `json:"exclude_nodes"` //排除节点

	UUID        string    `json:"uuid"`          //id
	Md5         string    `json:"md5"`           //md5
	Size        int64     `json:"size"`          //包大小
	PkgFullPath string    `json:"pkg_full_path"` //包路径
	DownloadUrl string    `json:"download_url"`  //包下载地址
	CreatedAt   time.Time `json:"created_at"`    //创建时间
}

func (p *PkgItem) CheckKey() string {
	return fmt.Sprintf("%s_%s_%s", p.Env, p.Os, p.Arch)
}

func (p *PkgItem) Json() []byte {
	res, err := json.Marshal(p)
	if err != nil {
		return []byte{}
	}
	return res
}
